namespace ext
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>A standard tooltip implementation for providing additional information when hovering over a target element.</summary>
	/// <definedin>src\widgets\tips\ToolTip.js</definedin>
	[ScriptName("ToolTip")]
	[ScriptNamespace("Ext")]
	[Imported()]
	public partial class ToolTip : ext.Tip
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="config">The configuration options</param>
		public ToolTip(ext.ToolTip_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public ToolTip()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>
		/// The target HTMLElement, Ext.Element or id to monitor
		/// for mouseover events to trigger showing this ToolTip.
		/// </summary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("target")]
		public object Target;
		
		/// <summary>
		/// True to automatically hide the tooltip after the
		/// mouse exits the target element or after the {@link #dismissDelay}
		/// has expired if set (defaults to true). If {@link closable} = true
		/// a close tool button will be rendered into the tooltip header.
		/// </summary>
		/// <htmlSummary>
		/// True to automatically hide the tooltip after the
		/// mouse exits the target element or after the &lt;code&gt;{@link #dismissDelay}&lt;/code&gt;
		/// has expired if set (defaults to true). If &lt;code&gt;{@link closable} = true&lt;/code&gt;
		/// a close tool button will be rendered into the tooltip header.
		/// </htmlSummary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("autoHide")]
		public bool AutoHide;
		
		/// <summary>
		/// Delay in milliseconds before the tooltip displays
		/// after the mouse enters the target element (defaults to 500)
		/// </summary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("showDelay")]
		public System.Number ShowDelay;
		
		/// <summary>
		/// Delay in milliseconds after the mouse exits the
		/// target element but before the tooltip actually hides (defaults to 200).
		/// Set to 0 for the tooltip to hide immediately.
		/// </summary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("hideDelay")]
		public System.Number HideDelay;
		
		/// <summary>
		/// Delay in milliseconds before the tooltip
		/// automatically hides (defaults to 5000). To disable automatic hiding, set
		/// dismissDelay = 0.
		/// </summary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("dismissDelay")]
		public System.Number DismissDelay;
		
		/// <summary>
		/// An XY offset from the mouse position where the
		/// tooltip should be shown (defaults to [15,18]).
		/// </summary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("mouseOffset")]
		public System.Array MouseOffset;
		
		/// <summary>
		/// True to have the tooltip follow the mouse as it
		/// moves over the target element (defaults to false).
		/// </summary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("trackMouse")]
		public bool TrackMouse;
		
		/// <summary>
		/// True to anchor the tooltip to the target
		/// element, false to anchor it relative to the mouse coordinates (defaults
		/// to true). When anchorToTarget is true, use
		/// {@link #defaultAlign} to control tooltip alignment to the
		/// target element. When anchorToTarget is false, use
		/// {@link #anchorPosition} instead to control alignment.
		/// </summary>
		/// <htmlSummary>
		/// True to anchor the tooltip to the target
		/// element, false to anchor it relative to the mouse coordinates (defaults
		/// to true). When &lt;code&gt;anchorToTarget&lt;/code&gt; is true, use
		/// &lt;code&gt;{@link #defaultAlign}&lt;/code&gt; to control tooltip alignment to the
		/// target element. When &lt;code&gt;anchorToTarget&lt;/code&gt; is false, use
		/// &lt;code&gt;{@link #anchorPosition}&lt;/code&gt; instead to control alignment.
		/// </htmlSummary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("anchorToTarget")]
		public bool AnchorToTarget;
		
		/// <summary>
		/// A numeric pixel value used to offset the
		/// default position of the anchor arrow (defaults to 0). When the anchor
		/// position is on the top or bottom of the tooltip, anchorOffset
		/// will be used as a horizontal offset. Likewise, when the anchor position
		/// is on the left or right side, anchorOffset will be used as
		/// a vertical offset.
		/// </summary>
		/// <htmlSummary>
		/// A numeric pixel value used to offset the
		/// default position of the anchor arrow (defaults to 0). When the anchor
		/// position is on the top or bottom of the tooltip, &lt;code&gt;anchorOffset&lt;/code&gt;
		/// will be used as a horizontal offset. Likewise, when the anchor position
		/// is on the left or right side, &lt;code&gt;anchorOffset&lt;/code&gt; will be used as
		/// a vertical offset.
		/// </htmlSummary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("anchorOffset")]
		public System.Number AnchorOffset;
		
		/// <summary>
		/// Optional. A {@link Ext.DomQuery DomQuery}
		/// selector which allows selection of individual elements within the
		/// {@link #target} element to trigger showing and hiding the
		/// ToolTip as the mouse moves within the target.  When specified, the child element of the target which caused a show
		/// event is placed into the {@link #triggerElement} property
		/// before the ToolTip is shown.  This may be useful when a Component has regular, repeating elements
		/// in it, each of which need a Tooltip which contains information specific
		/// to that element. For example:  
		/// var myGrid = new Ext.grid.gridPanel(gridConfig);
		/// myGrid.on(&apos;render&apos;, function(grid) {
		/// var store = grid.getStore(); // Capture the Store.
		/// var view = grid.getView(); // Capture the GridView.
		/// myGrid.tip = new Ext.ToolTip({
		/// target: view.mainBody, // The overall target element.
		/// delegate: &apos;.x-grid3-row&apos;, // Each grid row causes its own seperate show and hide.
		/// trackMouse: true, // Moving within the row should not hide the tip.
		/// renderTo:...
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;Optional. A {@link Ext.DomQuery DomQuery}
		/// selector which allows selection of individual elements within the
		/// &lt;code&gt;{@link #target}&lt;/code&gt; element to trigger showing and hiding the
		/// ToolTip as the mouse moves within the target.&lt;/p&gt;
		/// &lt;p&gt;When specified, the child element of the target which caused a show
		/// event is placed into the &lt;code&gt;{@link #triggerElement}&lt;/code&gt; property
		/// before the ToolTip is shown.&lt;/p&gt;
		/// &lt;p&gt;This may be useful when a Component has regular, repeating elements
		/// in it, each of which need a Tooltip which contains information specific
		/// to that element. For example:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;
		/// var myGrid = new Ext.grid.gridPanel(gridConfig);
		/// myGrid.on(&apos;render&apos;, function(grid) {
		/// var store = grid.getStore(); // Capture the Store.
		/// var view = grid.getView(); // Capture the GridView.
		/// myGrid.tip = new Ext.ToolTip({
		/// target: view.mainBody, // The overall target element.
		/// delegate: &apos;.x-grid3-row&apos;, // Each grid row causes its own seperate show and hide.
		/// trackMouse: true, // Moving within the row should not hide the tip.
		/// renderTo: document.body, // Render immediately so that tip.body can be
		/// // referenced prior to the first show.
		/// listeners: { // Change content dynamically depending on which element
		/// // triggered the show.
		/// beforeshow: function updateTipBody(tip) {
		/// var rowIndex = view.findRowIndex(tip.triggerElement);
		/// tip.body.dom.innerHTML = &apos;Over Record ID &apos; + store.getAt(rowIndex).id;
		/// }
		/// }
		/// });
		/// });
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("delegate")]
		public string Delegate;
		#endregion
		
		#region Properties
		/// <summary>
		/// When a Tooltip is configured with the {@link #delegate}
		/// option to cause selected child elements of the {@link #target}
		/// Element to each trigger a seperate show event, this property is set to
		/// the DOM element which triggered the show.
		/// </summary>
		/// <htmlSummary>
		/// When a Tooltip is configured with the &lt;code&gt;{@link #delegate}&lt;/code&gt;
		/// option to cause selected child elements of the &lt;code&gt;{@link #target}&lt;/code&gt;
		/// Element to each trigger a seperate show event, this property is set to
		/// the DOM element which triggered the show.
		/// </htmlSummary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("triggerElement")]
		[IntrinsicProperty()]
		public System.Html.Element TriggerElement
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		#endregion
		
		#region Methods
		/// <summary>Binds this ToolTip to the specified element. The tooltip will be displayed when the mouse moves over the element.</summary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		/// <param name="t">The Element, HtmlElement, or ID of an element to bind to</param>
		[ScriptName("initTarget")]
		public void InitTarget(object t)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Hides this tooltip if visible.</summary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("hide")]
		public void Hide()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Shows this tooltip at the current event target XY position.</summary>
		/// <definedin>src\widgets\tips\ToolTip.js</definedin>
		[ScriptName("show")]
		public void Show()
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
